1. Field of the Invention
This invention relates in general to managing business critical data in a computer, and in particular, to exposing and making database assets available as a web service.
2. Description of Related Art
Master Data Management™ (MDM), available from the assignee of the present invention, is an application that allows users to manage their business critical data. This critical data can originate from a myriad of sources and external feeds, but ultimately, the goal is that all of this data be consolidated into a central business data warehouse. Master Data Management™ is the process and framework for maintaining a series of business rules and process workflows that will manage this data as it feeds in from multiple sources. Master Data Management™ then applies these business rules and process workflows to produce “master” data, which is then fed to all consuming business processes.
A common requirement for customers in a master data management and enterprise data warehouse (EDW) context is the ability to make database assets available as a web service. Such database assets could be tables, views, stored procedures, user defined functions (UDFs), etc. Exposing such assets as a web service assists customers and implementation teams to shorten the implementation cycle and minimizes the need for additional skill sets.
A description of queries, stored procedures, and user-defined functions may be useful to better understand the invention. Certain computer languages have been developed and utilized to interact with and manipulate the data. For example, SQL (Structured Query Language) is a language used to interrogate and process (i.e., query) data in a relational database (a database in which relationships are established between files and information stored in the database). Originally developed for mainframes, most database systems designed for client/sever environments support SQL. SQL commands can be used to interactively work with a database or can be embedded within a programming language to interface to a database. Thus, methods and functions may embed and utilize SQL commands.
Users/programmers often need to invoke the same set of commands (or the same set of commands with different parameters) at varying times and locations of a program. In such a situation, the query may be placed into a stored procedure. A stored procedure is a batch of SQL statements stored in a database/on a server, that may be partially or fully processed/compiled before it is stored (or upon its first invocation). Additionally, a stored procedure is a method or procedure written in any programming language that is partially or fully processed/compiled before it is stored (or upon its first invocation).
In addition to stored procedures, various functions and methods (referred to as UDFs) may be written by a user independently from (and without knowledge of) the underlying DBMS. UDFs often contain embedded SQL commands and additionally may be invoked or used in expressions in SQL statements.
Thus, stored procedures allow a user to group a set of SQL commands, accept parameters, and execute the SQL statements depending on those parameters. However, a UDF may be used in expressions in SQL statements.
Prior art implementations fail to provide generic implementations that expose database assets including UDFs and stored procedures as web services.